Large scale data centers are a relatively new human artifact, and their organization and structure has evolved rapidly as the commercial opportunities they provide has expanded. Typical modern data centers are organized collections of clusters of hardware running collections of standard software packages, such as web servers database servers, etc. interconnected by high speed networking, routers, and firewalls. The task of organizing these machines, optimizing their configuration, debugging errors in their configuration, and installing and uninstalling software on the constituent machines is largely left to human operators.
Moreover, because the Web services these data centers are supporting are also rapidly evolving (for example, a company might first offer a search service, and then an email service, and then a Map service, etc.) the structure and organization of the underlying data center architecture might need to be changed accordingly. This reorganization is also largely left to human architects to figure out. One problem data center operators currently face is deciding when a service being offered by a data center is no longer needed and can be turned off. The knowledge of why a piece of software is installed, or what other software uses that software, is largely maintained in the fragile memory of the human architects and operators.
Various exemplary technologies described herein pertain to architecture and management of data centers. Various technologies can address one or more of the aforementioned problems or other problems associated with data centers.